package com.joolun.weixin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.joolun.system.domain.ScrmCustomerStaff;
import com.joolun.system.domain.ScrmStaff;
import com.joolun.system.domain.vo.ScrmCustomerStaffCountVO;

import java.util.Date;
import java.util.List;

/**
 * 企业微信客户-员工关联表 服务类
 *
 * @author xxh
 * @since 2021-12-22
 */
public interface IScrmCustomerStaffService extends IService<ScrmCustomerStaff> {

    /**
     * 删除
     *
     * @param id 企业微信客户-员工关联表id
     * @author xxh
     * @date 2021-12-22
     */
    void delete(String id);

    /**
     * 批量删除
     *
     * @param dto 请求参数
     * @author xxh
     * @date 2021-12-22
     */
    //void batchDelete(BatchDTO<String> dto);


    /**
     * 校验是否存在
     *
     * @param extCorpId     企业id
     * @param extStaffId    企业员工id
     * @param extCustomerId 客户id
     * @return com.scrm.api.wx.cp.entity.WxCustomerStaff
     * @author xxh
     * @date 2021-12-22
     */
    ScrmCustomerStaff checkExists(String extCorpId, String extStaffId, String extCustomerId);


     List<ScrmCustomerStaffCountVO> countGroupByStaffExtId(String extCorpId);


    /**
     * 统计那个员工那天加的好友数（包括以删的）
     *
     * @param extCorpId
     * @param extStaffId
     * @param date
     * @return
     */
    Integer countByDate(String extCorpId, String extStaffId, String state, Date date);


    //WxCustomerStaffVO find(String exrCorpId, String customerId, String extStaffId);


    /**
     * 查询（会查询出被删除的数据）
     * @param extCorpId     企业id
     * @param extStaffId    企业员工id
     * @param extCustomerId 客户id
     * @return com.scrm.api.wx.cp.entity.WxCustomerStaff
     * @return 员工客户根据信息
     */
    ScrmCustomerStaff findHasDelete(String extCorpId, String extStaffId, String extCustomerId);
    /**
     * 查询（会查询出被删除的数据）
     * @param id
     * @return com.scrm.api.wx.cp.entity.WxCustomerStaff
     * @return 员工客户根据信息
     */
    ScrmCustomerStaff findHasDelete(String id);


    long count(String extCorpId, Date begin, Date end, String staffExtId);

    /**
     * 新增企业微信成员
     *
     * @param scrmStaff 企业微信成员
     * @return 结果
     */
    public int insertScrmCustomerStaff(ScrmCustomerStaff scrmCustomerStaff);
}
